package com.itestor.iptv.modules.common.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.itestor.iptv.exceptions.ApplicationException;
import com.itestor.iptv.global.GlobalConstant;
import com.itestor.iptv.modules.common.CommonConstant;
import com.itestor.iptv.modules.common.service.RobotConfigService;
import com.itestor.iptv.utils.LocalCmdConstant;
import com.itestor.iptv.utils.SystemHelper;

/**
 * 
 * @author Mr.li
 * 
 */
public class RobotProcessCfgModifyAction extends Action {

    /**
     * Logger for this class.
     */
    private static final Logger logger = Logger
            .getLogger(RobotProcessCfgModifyAction.class);
    
    /**
	 * 
	 */
    public transient RobotConfigService robotConfigService;

    /**
     * @param mapping struts mapping
     * @param request request
     * @param form action form
     * @param response response
     * @return action forward
     * @throws Exception any exception
     */
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {           
        
        String service = request.getParameter("service");
        String command = request.getParameter("command");  
        
        Integer exec_state= robotConfigService.modifyRobotProcessState(service,command);     
        
        if(exec_state <0){
            throw new ApplicationException("robot.process.config.failue", CommonConstant.PROPERTIES_BUNDLE);                
        }
        
        logger.info(" config process state  [" +  exec_state +"]");
        
        SystemHelper.addMessage(request,LocalCmdConstant.STATE_MAP.get(exec_state), CommonConstant.PROPERTIES_BUNDLE);
        return mapping.findForward(GlobalConstant.FORWARD_SUCCESS);
    }
    
    /** 
     * @param pRobotConfigService
     */
    public void setRobotConfigService(RobotConfigService pRobotConfigService) {
        robotConfigService = pRobotConfigService;
    }

}
